/*
 * Group.java
 *
 * Created on 14 de Mar�o de 2003, 22:43
 */
package saci.reptil;

/**
 * Classe que representa o grupo de dados que ser�o usados pelo relat�rio
 *
 * @author  saci
 */
public class Group {

    private GroupHeaderBand headerBand;
    private GroupFooterBand footerBand;
    private String field;

    /**
     * Cria uma nova inst�ncia da classe
     */
    public Group(String field, GroupHeaderBand ghb, GroupFooterBand gfb) {
        setField(field);
        setHeaderBand(ghb);
        setFooterBand(gfb);
    }

    /**
     * Altera o campo de grupo
     * 
     * @param field o nome do campo no banco de dados
     */
    public void setField(String field) {
        if (field == null || field.trim().length() == 0) {
            throw new RuntimeException("Field cannot be null");
        }

        this.field = field;
    }

    /**
     * Retorna o nome do campo no banco de dados
     */
    public String getField() {
        return field;
    }

    /**
     * Altera o cabe�alho do grupo
     */
    public void setHeaderBand(GroupHeaderBand headerBand) {
        if (headerBand == null) {
            throw new RuntimeException("Field cannot be null");
        }

        this.headerBand = headerBand;
    }

    /**
     * Altera o rodap� do grupo
     */
    public void setFooterBand(GroupFooterBand footerBand) {
        if (footerBand == null) {
            throw new RuntimeException("Field cannot be null");
        }

        this.footerBand = footerBand;
    }

    /**
     * Retorna o cabe�alho do grupo
     */
    public GroupHeaderBand getHeaderBand() {
        return headerBand;
    }

    /**
     * Retorna o rodap� do grupo
     */
    public GroupFooterBand getFooterBand() {
        return footerBand;
    }
}
